-- print(type(coroutine))  -- table  

-- function f(a,b)
--     print("this is f()!")
--     print(coroutine.status(co)) -- running 
--     -- return a,b,a + b
--     coroutine.yield(a,b,a+b)
-- end

-- co = coroutine.create(f)
-- print(type(co)) -- thread

-- -- coroutine 三种状态 suspended、runing、dead
-- print(coroutine.status(co))

-- print(coroutine.resume(co,100,200)) -- true    100 200 300
-- print(coroutine.status(co)) -- dead

-- ----------------------------------------------

-- function foo(a,b)
--     print("co beforr yield", a,b ) -- 第一个resume传入的， 100 200
--     x,y = coroutine.yield(a+b,a-b) -- 返回 300 和 -100   ;  第二个resume 传入的 1，2 给 x,y 
--     print("co after yield",x,y)  -- co after yield 1  2
-- end

-- co = coroutine.create(foo)

-- print(coroutine.resume(co,100,200))
-- print(coroutine.status(co))
-- print(coroutine.resume(co,1,2))
  
-- ---------------------------------------------

function Sleep(n)
    local start = os.clock()
    while os.clock() -start <= n do end
end

